The invention relates to systems and methods for performing software audits, and in particular, to software audits performed in hardware virtualization configurations.
In the modern-day software-driven economy, the amount and complexity of hardware and software assets held by a company continuously increase. As employees move from using desktop computers to using mobile devices such as laptops, tablet computers and mobile phones, and as work becomes de-localized, keeping track of a company's hardware and software assets becomes a serious problem. For example, instead of using a single version of a software application across all company computers, companies nowadays typically use multiple versions of each application to account for the various hardware platforms and operating systems that the employees use in a modern mobile office. The situation is further complicated when applying software updates, when such updates may not be delivered uniformly to all computers and mobile devices.
Such increasing heterogeneity may complicate software licensing and service-level agreements. Moreover, the recent proliferation of application software used on mobile devices poses an increasing computer security risk. Malicious software and spyware may easily dissimulate among the plethora of legitimate applications and versions, thus exposing employees and the company to a risk of unauthorized access to proprietary data and to a loss of productivity, among others.
A further recent development changing the classical model of computing is hardware virtualization. In applications such as webserver farms and virtual desktop infrastructure (VDI), hundreds of virtual machines may execute concurrently on a single physical platform. Such virtual machines may be instantiated and/or removed dynamically, which further increases the heterogeneity of software executing at any one time on the respective physical platform.
Auditing software may be used to keep track of software installed and/or currently in execution on a computer system, for purposes such as licensing, digital rights management, application control, and computer security, among others. There is an increasing interest in developing auditing systems and methods particularly suited to modern virtualized environments.